package cn.glinks.liuhe.utils;

import com.amap.api.maps.AMap;
import com.amap.api.maps.CameraUpdate;
import com.amap.api.maps.CameraUpdateFactory;
import com.amap.api.maps.model.CameraPosition;
import com.amap.api.maps.model.LatLng;

/**
 * 地图集合工具类
 *
 * @author MarsBlade of Cyh
 * @created 2017-03-03 12:30
 */

public class MapUtils {

    /**
     * 移动可视视图到指定坐标点
     * @param aMap AMap 地图对象
     * @param animated boolean 是否有动画效果
     * @param target LatLng 目标位置的屏幕中心点经纬度坐标
     * @param zoom float 目标可视区域的缩放级别
     * @param tilt float 目标可视区域的倾斜度，以角度为单位
     * @param bearing float 可视区域指向的方向，以角度为单位，从正北向逆时针方向计算，从0 度到360 度
     * @param callback AMap.CancelableCallback 当视图动画过程完成后的回调接口
     */
    public static void changeCamera(AMap aMap, boolean animated, LatLng target,
                                    float zoom, float tilt, float bearing,
                                    AMap.CancelableCallback callback) {
        if (null != aMap) {
            // 设置可视区域参数
            CameraPosition position = new CameraPosition(target, zoom, tilt, bearing);
            CameraUpdate update = CameraUpdateFactory.newCameraPosition(position);
            // 移动可视区域
            if (animated) {
                aMap.animateCamera(update, 1000, callback);
            } else {
                aMap.moveCamera(update);
            }
        }
    }

}
